home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
magiccoo.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
7KB
|
129 lines
(*----------------------------------------------------------------------*
* *
* MAGIC Modula's All purpose GEM Interface Cadre *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus in schrift- *
* licher Form, insbesondere in Zeitschriften, sowie die Verbreitung *
* ber Public-Domain-Hndler bedarf der ausdrcklichen schriftlichen *
* Genehmigung des Autors! *
* *
* Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
* zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins- *
* besondere dieser Urheberrechts-Vermerk nicht verndert wird, und *
* durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor *
* behlt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
* von Grnden zu widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* MagicCookie Zugriff auf den Cookiejar *
* *
* Cookies sind, hnlich XBRA im System global zugngliche Variablen. *
* Sie bestehen jeweils aus einem Namen (4 Byte, mglichst ein lesbarer *
* Text) und einem 32Bit-Wert. Sie werden vom Betriebssystem (ab TOS- *
* Version 1.06 oder von residenten Programmen eingetragen. *
* *
* Sie dienen dazu, eine statische Schnittstelle zu anderen Programmen *
* herzustellen. Wenn beispielsweise ein residentes Programm (im AUTO- *
* Ordner) einen Cookie anlegt, dessen Wert ein Zeiger auf einen eige- *
* nen Datenbereich ist, knnen andere Programme spter diesen Cookie *
* finden und auf die Daten des residenten Programms zugreifen. Atari *
* hat ausserdem einige Cookies definiert, die den Rechner und die *
* Hardware beschreiben. *
* *
* VORSICHT: Wenn Sie selbst eigene Cookies eintragen wollen, mssen *
* Sie einiges mehr an Wissen darber haben (z.B. Atari STE TOS Release *
* Notes vom 12.1.90). Vor allem sollten Sie Cookies nur in residenten *
* Programmen erzeugen, jedoch _NIEMALS_ in Accessories oder Applika- *
* tionen. Die hier vorgestellten Routinen implementieren deshalb auch *
* nur Abfragemethoden fr Cookies! Fr diejenigen, die diese Thema *
* weiter interessiert sind dem Magic-Paket die Cookiejar-Routinen (C- *
* Quellcode) von Arnd Beissner beigefgt. *
*----------------------------------------------------------------------*)
DEFINITION MODULE MagicCookie;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
FROM SYSTEM IMPORT BYTE;
(* Von Atari vordefinierte Cookies, die den Rechner beschreiben. *)
CONST CPU = '_CPU'; (* Hauptprozessor: 0, 10, 20, 30 usw. *)
FPU = '_FPU'; (* Mathe-Koprozessor: 0, 1, 2 im 1. Word *)
Machine = '_MCH'; (* Rechner; 1. Word: 0=ST, 1=STE, 2=TT *)
Video = '_VDO'; (* Video-Hardware; 1. Word: 0=ST, 1=STE, 2=TT *)
Sound = '_SND'; (* Bits im Longword: 0: GI/Yamaha(ST), 1: DMA(TT) *)
Switches = '_SWI'; (* BIOS-interne Konfigurationswerte *)
FastReadBuff = '_FRB'; (* Adresse des 64KB-Puffers f. Disk-Treiber im TT *)
LaserPrinter = '_SLM'; (* Wird vom Diablo-Treiber (ab Version 1.4) gesetzt. *)
STeFix = '_INF'; (* Fix fr den Desktop.Inf-Bug im Desktop des STE. *)
DosFlock = '_FLK'; (* GEMDOS verfgt ber Record-Locking *)
Network = '_NET'; (* Typ des verwendeten Netzwerks *)
Poolfix = '_OOL'; (* Poolfix 3 von Atari Corp *)
HdDisk = '_FDC'; (* Laufwerk-Konfiguration ab TOS 2.06
* im 1. Word 0 = DD-Laufwerke (720/360kB)
* 1 = HD-Laufwerke (1.44MB)
* 2 = ED-Laufwerke (2.88MB)
*)
(* Andere bekannte Cookies *)
CONST Overscan = 'OVER'; (* Autoswitch-Overscan von K.Isakovic *)
TOS14Fix = 'TFIX'; (* Tos14Fix *)
VDIFix = 'VFIX'; (* VDIFix-Progamm von K.Isakovic *)
ReflexCard = 'RFLX'; (* Treiber der Reflex-Karte von OverScan GbR *)
NVDI = 'NVDI'; (* NVDI von Bela *)
BigScreen2 = 'BIGS'; (* Grobildschirmsimulator von Julian Reschke *)
VirtualScreen = 'VSCR'; (* Zeiger auf Infostruktur von Bigscreen2 *)
Gemini = 'GMNI'; (* GEMINI, der Shareware-Desktop *)
Mupfel = 'MUPF'; (* MUPFEL von Gereon Steffens *)
MakeJar = 'MkJr'; (* MakeCookiejar von Thomas Schallar *)
TTTF = 'TTTF'; (* ThirtyTwoToTwentyFour von Marcel Waldvogel *)
FileSelector = 'FSEL'; (* Extended Fileselector z.B. Patzelbox *)
LetemFly = 'LTMF'; (* Let'em Fly von Oliver Scheel *)
(* Zum Zerlegen des Cookiewertes ohne groe Umstnde *)
TYPE Anytype = RECORD
CASE : CARDINAL OF
0: long: lWORD;|
1: hi, lo: sWORD;|
2: b4, b3, b2, b1: BYTE;|
END;
END;
PROCEDURE FindCookie (cookie: ARRAY OF CHAR; VAR value: lWORD): BOOLEAN;
(* Liefert TRUE, wenn der bergebene Cookie gefunden wird. Liefert
* dann in value den dazugehrigen Longword-Wert, bei FALSE ist
* value immer Null.
*)
PROCEDURE ModifyCookie (cookie: ARRAY OF CHAR; value: lWORD): BOOLEAN;
(* Sucht den Cookie und liefert FALSE, wenn er nicht vorhanden ist.
* Wird er gefunden, wird value als neuer Cookie-Wert eingesetzt und
* die Funktion liefert TRUE.
*)
TYPE Listmode = (first, next);
PROCEDURE ListCookies (flag: Listmode; VAR id: ARRAY OF CHAR; VAR value: lWORD): BOOLEAN;
(* Geht die Liste aller Cookies durch. (Einmal mit first, dann mit next
* aufrufen). Solange die Prozedur TRUE liefert, sind Cookies gefunden
* worden. Bei FALSE sind id und value undefiniert!
*)
END MagicCookie.